{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.02643767, -0.64920607,  2.82454962, ..., -0.21346246,\n",
       "        -0.44851117, -0.16836783],\n",
       "       [-0.50957371, -0.35407905,  2.34866852, ..., -0.21346246,\n",
       "        -0.44851117, -0.16836783],\n",
       "       [ 0.67782436, -0.30757698,  1.54355884, ..., -0.21346246,\n",
       "        -0.44851117, -0.16836783],\n",
       "       ...,\n",
       "       [-0.59549457, -0.65887482, -0.85486501, ..., -0.21346246,\n",
       "        -0.44851117, -0.16836783],\n",
       "       [-0.59549457, -1.08476014, -0.85486501, ..., -0.21346246,\n",
       "        -0.44851117, -0.16836783],\n",
       "       [-0.59549457, -1.08476014, -0.85486501, ..., -0.21346246,\n",
       "         3.5935339 , -0.16836783]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 数据预处理\n",
    "\n",
    "# 因为客户ID、订单ID和下单小时对后续的数据挖掘没有作用，所以剔除这几列,但下订单的工作日可能会透露一些周末买家的信息。我们就留着吧。\n",
    "# 1、删除订单列\n",
    "import pandas as pd\n",
    "data_pretreatment = pd.read_csv(\"../data/order.csv\")\n",
    "data_pretreatment.drop(['customer','order','hour','weekday','total_items'],axis = 1,inplace=True) \n",
    "# 将数据保存\n",
    "data_pretreatment.to_csv(\"../tmp/model_training_data.csv\",index=False)\n",
    "\n",
    "# 数据标准化：使用sklearn.preprocessing模块中的StandardScaler类\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 创建StandardScaler对象并对数据进行标准化\n",
    "scaler = StandardScaler()\n",
    "X = scaler.fit_transform(data_pretreatment)\n",
    "X"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1、确定k值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yBHx7bffitzcXJGcnCzUajU/v07U1dWJ06dPi9OnTwsAYvv27eL06dPi2rVrQgghtm7dKiRJErt27RKFhYXixRdfFDqdTtTW1srcuffo6jOsq6sT69atE8ePHxclJSXi8OHDIj4+XowaNYqf4R0rV64UkiSJI0eOCKPR6Hw0NDQ4a3gedq67z4/nYPc2bNggjh49KkpKSsSZM2fEv/zLvwilUimysrKEEP13/jEU9dLvfvc7ER0dLQICAsS0adNcllZS155//nmh0+mEv7+/0Ov14tlnnxVnz56Vuy2vdfjwYQGg3WPZsmVCiNbl0Onp6UKr1QqVSiUef/xxUVhYKG/TXqarz7ChoUEkJiaKiIgI4e/vL8aMGSOWLVsmSktL5W7ba3T02QEQ77//vrOG52Hnuvv8eA5270c/+pHzOzciIkI89dRTzkAkRP+dfwohhOjlyBURERHRoME5RURERERgKCIiIiICwFBEREREBIChiIiIiAgAQxERERERAIYiIiIiIgAMRUREREQAGIqIiIiIADAUEREREQFgKCIiIiICwFBEREREBIChiIiIiAgA8P8DYAdmg2G8TwoAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 手肘法确定K值\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.cluster import KMeans\n",
    "\n",
    "# 设置K值集合和存储误差平方和的列表\n",
    "k_values= range(1,30)\n",
    "sse_values = []\n",
    "for k in k_values:\n",
    "        # 训练模型\n",
    "        kmeans = KMeans(n_clusters=k,random_state = 333).fit(X) # 确定随机种子\n",
    "        # 获取聚类的平方距离总和\n",
    "        SSE = kmeans.inertia_\n",
    "        sse_values.append(SSE)\n",
    "\n",
    "# 将see可视化\n",
    "plt.plot(k_values, sse_values, 'o-')\n",
    "plt.show()\n",
    "# 可以看到他大概可以分为9类、10类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 通过轮廓系数法看看\n",
    "from sklearn.metrics import silhouette_score\n",
    "def get_silhouette_score(cluster_data, n_clusters):\n",
    "    # 模型训练\n",
    "    clustering = KMeans(n_clusters = n_clusters,random_state = 333)\n",
    "    labels = clustering.fit_predict(cluster_data)\n",
    "    # 返回轮廓系数\n",
    "    return silhouette_score(cluster_data, labels)\n",
    "\n",
    "# 寻找最优的n_clusters\n",
    "def find_best_n_clusters(cluster_data):\n",
    "    scores = []\n",
    "    # 寻找2到14之间寻找最优取值\n",
    "    for n_clusters in range(2,15):\n",
    "        # 调用轮廓系数计算\n",
    "        score = get_silhouette_score(cluster_data, n_clusters)\n",
    "        scores.append(score)\n",
    "        print(\"n_clusters为：\",n_clusters,\"时，他的轮廓系数为：\",score)\n",
    "    # 利用numpy库中的argmax寻找最优值的位置\n",
    "    best_n_clusters = np.argmax(scores) + 2\n",
    "    return best_n_clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "n_clusters为： 2 时，他的轮廓系数为： 0.22685397059573206\n",
      "n_clusters为： 3 时，他的轮廓系数为： 0.21110905096802735\n",
      "n_clusters为： 4 时，他的轮廓系数为： 0.20614468019247045\n",
      "n_clusters为： 5 时，他的轮廓系数为： 0.24060183204354144\n",
      "n_clusters为： 6 时，他的轮廓系数为： 0.263482065935062\n",
      "n_clusters为： 7 时，他的轮廓系数为： 0.27526444847965525\n",
      "n_clusters为： 8 时，他的轮廓系数为： 0.28911851168728997\n",
      "n_clusters为： 9 时，他的轮廓系数为： 0.300475749527405\n",
      "n_clusters为： 10 时，他的轮廓系数为： 0.2763085804983613\n",
      "n_clusters为： 11 时，他的轮廓系数为： 0.28049110752424733\n",
      "n_clusters为： 12 时，他的轮廓系数为： 0.26785040842463315\n",
      "n_clusters为： 13 时，他的轮廓系数为： 0.2793063975905205\n",
      "n_clusters为： 14 时，他的轮廓系数为： 0.27652745922509625\n",
      "最优best_n_clusters为： 9\n",
      "最优轮廓系数为： 0.300475749527405\n"
     ]
    }
   ],
   "source": [
    "best_n_clusters = find_best_n_clusters(X)\n",
    "score = get_silhouette_score(X, best_n_clusters)\n",
    "print(\"最优best_n_clusters为：\",best_n_clusters)\n",
    "print(\"最优轮廓系数为：\",score)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分析每一类人的消费趋向"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "88815.03478699474"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.cluster import KMeans\n",
    "from pyecharts.charts import Pie,Timeline\n",
    "from pyecharts import options as opts\n",
    "\n",
    "# 导入数据\n",
    "# 1、删除订单列\n",
    "import pandas as pd\n",
    "df = pd.read_csv(\"../tmp/model_training_data.csv\",)\n",
    "\n",
    "# 2、数据标准化：使用sklearn.preprocessing模块中的StandardScaler类\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 创建StandardScaler对象并对数据进行标准化\n",
    "scaler = StandardScaler()\n",
    "X = scaler.fit_transform(df)\n",
    "\n",
    "# 3、模型训练\n",
    "clustering = KMeans(n_clusters = 9,random_state = 333)\n",
    "labels = clustering.fit_predict(X)\n",
    "df['分类标签'] = labels\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "<script>\n",
       "    require.config({\n",
       "        paths: {\n",
       "            'echarts':'https://assets.pyecharts.org/assets/echarts.min'\n",
       "        }\n",
       "    });\n",
       "</script>\n",
       "\n",
       "        <div id=\"7ef3c5c6dd65441f81751d7149986f19\" style=\"width:900px; height:500px;\"></div>\n",
       "\n",
       "<script>\n",
       "        require(['echarts'], function(echarts) {\n",
       "                var chart_7ef3c5c6dd65441f81751d7149986f19 = echarts.init(\n",
       "                    document.getElementById('7ef3c5c6dd65441f81751d7149986f19'), 'white', {renderer: 'canvas'});\n",
       "                var option_7ef3c5c6dd65441f81751d7149986f19 = {\n",
       "    \"baseOption\": {\n",
       "        \"series\": [\n",
       "            {\n",
       "                \"type\": \"pie\",\n",
       "                \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                \"clockwise\": true,\n",
       "                \"data\": [\n",
       "                    {\n",
       "                        \"name\": \"\\u6298\\u6263\",\n",
       "                        \"value\": 5.51\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"value\": 17.82\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"value\": 11.19\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u996e\\u6599\",\n",
       "                        \"value\": 15.77\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"value\": 10.96\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"value\": 7.34\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"value\": 29.35\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"value\": 6.55\n",
       "                    },\n",
       "                    {\n",
       "                        \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                        \"value\": 0.84\n",
       "                    }\n",
       "                ],\n",
       "                \"radius\": [\n",
       "                    60,\n",
       "                    150\n",
       "                ],\n",
       "                \"center\": [\n",
       "                    \"50%\",\n",
       "                    \"50%\"\n",
       "                ],\n",
       "                \"label\": {\n",
       "                    \"show\": true,\n",
       "                    \"position\": \"outside\",\n",
       "                    \"margin\": 8,\n",
       "                    \"formatter\": \"{b}:\\n{d}%\"\n",
       "                }\n",
       "            }\n",
       "        ],\n",
       "        \"timeline\": {\n",
       "            \"axisType\": \"category\",\n",
       "            \"orient\": \"horizontal\",\n",
       "            \"autoPlay\": true,\n",
       "            \"controlPosition\": \"left\",\n",
       "            \"loop\": false,\n",
       "            \"rewind\": false,\n",
       "            \"show\": true,\n",
       "            \"inverse\": false,\n",
       "            \"playInterval\": 5000,\n",
       "            \"bottom\": \"-5px\",\n",
       "            \"data\": [\n",
       "                \"0\",\n",
       "                \"1\",\n",
       "                \"2\",\n",
       "                \"3\",\n",
       "                \"4\",\n",
       "                \"5\",\n",
       "                \"6\",\n",
       "                \"7\",\n",
       "                \"8\"\n",
       "            ]\n",
       "        }\n",
       "    },\n",
       "    \"options\": [\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 6.16\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 47.21\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 11.39\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 21.65\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 10.19\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 5.04\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.55\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 3.18\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.63\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e0\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 9.45\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 4.66\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 1.89\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 3.65\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 3.93\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 82.47\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.45\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 1.29\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.19\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e1\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 11.88\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 14.76\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 6.6\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 18.94\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 47.5\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 6.3\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.59\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 4.67\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.55\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e2\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 5.68\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 13.2\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 6.74\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 64.73\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 8.4\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 3.17\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.33\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 2.8\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.46\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e3\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 7.76\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 12.41\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 9.06\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 12.84\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 9.71\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 3.4\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.52\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 2.22\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 49.81\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e4\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 8.01\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 5.81\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 3.51\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 9.56\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 5.4\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 2.36\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.37\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 72.57\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.22\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e5\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 5.34\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 19.41\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 51.75\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 14.23\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 7.11\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 3.6\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.57\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 2.63\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.6\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e6\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 93.53\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 92.94\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 2.64\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 2.38\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 0.94\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.5\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.08\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 0.37\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.14\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e7\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        },\n",
       "        {\n",
       "            \"legend\": [\n",
       "                {\n",
       "                    \"data\": [\n",
       "                        \"\\u6298\\u6263\",\n",
       "                        \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                        \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                        \"\\u996e\\u6599\",\n",
       "                        \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                        \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                        \"\\u5ba0\\u7269\\u7528\\u54c1\"\n",
       "                    ],\n",
       "                    \"selected\": {},\n",
       "                    \"show\": false,\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10,\n",
       "                    \"itemWidth\": 25,\n",
       "                    \"itemHeight\": 14\n",
       "                }\n",
       "            ],\n",
       "            \"series\": [\n",
       "                {\n",
       "                    \"type\": \"pie\",\n",
       "                    \"name\": \"\\u6807\\u7b7e0\\u7684\\u4eba\\u7fa4\",\n",
       "                    \"clockwise\": true,\n",
       "                    \"data\": [\n",
       "                        {\n",
       "                            \"name\": \"\\u6298\\u6263\",\n",
       "                            \"value\": 5.51\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u98df\\u7269(\\u975e\\u751f\\u9c9c)\",\n",
       "                            \"value\": 17.82\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u751f\\u9c9c\\u7c7b\\u98df\\u7269\",\n",
       "                            \"value\": 11.19\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u996e\\u6599\",\n",
       "                            \"value\": 15.77\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5bb6\\u5c45\\u7528\\u54c1\",\n",
       "                            \"value\": 10.96\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u7f8e\\u5986\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 7.34\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u4fdd\\u5065\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 29.35\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u6bcd\\u5a74\\u7c7b\\u4ea7\\u54c1\",\n",
       "                            \"value\": 6.55\n",
       "                        },\n",
       "                        {\n",
       "                            \"name\": \"\\u5ba0\\u7269\\u7528\\u54c1\",\n",
       "                            \"value\": 0.84\n",
       "                        }\n",
       "                    ],\n",
       "                    \"radius\": [\n",
       "                        60,\n",
       "                        150\n",
       "                    ],\n",
       "                    \"center\": [\n",
       "                        \"50%\",\n",
       "                        \"50%\"\n",
       "                    ],\n",
       "                    \"label\": {\n",
       "                        \"show\": true,\n",
       "                        \"position\": \"outside\",\n",
       "                        \"margin\": 8,\n",
       "                        \"formatter\": \"{b}:\\n{d}%\"\n",
       "                    }\n",
       "                }\n",
       "            ],\n",
       "            \"title\": [\n",
       "                {\n",
       "                    \"text\": \"\\u6807\\u7b7e8\\u7c7b\\u4eba\\u7fa4\\u7684\\u5e73\\u5747\\u8d2d\\u4e70\\u60c5\\u51b5\\uff1a\",\n",
       "                    \"padding\": 5,\n",
       "                    \"itemGap\": 10\n",
       "                }\n",
       "            ],\n",
       "            \"tooltip\": {\n",
       "                \"show\": true,\n",
       "                \"trigger\": \"item\",\n",
       "                \"triggerOn\": \"mousemove|click\",\n",
       "                \"axisPointer\": {\n",
       "                    \"type\": \"line\"\n",
       "                },\n",
       "                \"showContent\": true,\n",
       "                \"alwaysShowContent\": false,\n",
       "                \"showDelay\": 0,\n",
       "                \"hideDelay\": 100,\n",
       "                \"textStyle\": {\n",
       "                    \"fontSize\": 14\n",
       "                },\n",
       "                \"borderWidth\": 0,\n",
       "                \"padding\": 5\n",
       "            },\n",
       "            \"color\": [\n",
       "                \"#c23531\",\n",
       "                \"#2f4554\",\n",
       "                \"#61a0a8\",\n",
       "                \"#d48265\",\n",
       "                \"#749f83\",\n",
       "                \"#ca8622\",\n",
       "                \"#bda29a\",\n",
       "                \"#6e7074\",\n",
       "                \"#546570\",\n",
       "                \"#c4ccd3\",\n",
       "                \"#f05b72\",\n",
       "                \"#ef5b9c\",\n",
       "                \"#f47920\",\n",
       "                \"#905a3d\",\n",
       "                \"#fab27b\",\n",
       "                \"#2a5caa\",\n",
       "                \"#444693\",\n",
       "                \"#726930\",\n",
       "                \"#b2d235\",\n",
       "                \"#6d8346\",\n",
       "                \"#ac6767\",\n",
       "                \"#1d953f\",\n",
       "                \"#6950a1\",\n",
       "                \"#918597\"\n",
       "            ]\n",
       "        }\n",
       "    ]\n",
       "};\n",
       "                chart_7ef3c5c6dd65441f81751d7149986f19.setOption(option_7ef3c5c6dd65441f81751d7149986f19);\n",
       "        });\n",
       "    </script>\n"
      ],
      "text/plain": [
       "<pyecharts.render.display.HTML at 0x2228eff2250>"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 画饼图观察每一类别的消费情况\n",
    "df.groupby(by='分类标签')['分类标签'].count()\n",
    "\n",
    "# 创建时间线对象\n",
    "timeline = Timeline()\n",
    "\n",
    "# 写一个函数来配置标签项\n",
    "def new_label_opts():\n",
    "    return opts.LabelOpts(\n",
    "            position=\"outside\",\n",
    "            formatter=\"{b}:\\n{d}%\",\n",
    "        )\n",
    "\n",
    "# 算出每一类的平均购买情况\n",
    "# 创建一个列表类储存不同类别人群的平均购买情况\n",
    "data_list = []\n",
    "\n",
    "pie_label = ['折扣','食物(非生鲜)','生鲜类食物','饮料','家居用品','美妆类产品','保健类产品','母婴类产品','宠物用品']\n",
    "for i in range(len(pie_label)):\n",
    "    # 指定查找不同标签的数据，并平均购买情况\n",
    "    label = df.loc[df['分类标签'] == i,:]\\\n",
    "    [['discount%','Food%','Fresh%','Drinks%','Home%','Beauty%','Health%','Baby%','Pets%']].mean().round(2)\n",
    "    # 饼图的数据\n",
    "    pie_data = [ [i,j] for i,j in zip(pie_label,label.values.tolist())]\n",
    "    data_list.append(pie_data)\n",
    "\n",
    "    # 创建饼图对象\n",
    "    c = (\n",
    "        Pie(init_opts=opts.InitOpts(width='400px',height='400px'))\n",
    "        .add(\n",
    "            \"标签0的人群\",\n",
    "            data_list[i],\n",
    "            radius=[60, 150],\n",
    "            label_opts=new_label_opts(),\n",
    "            # legend_opts = opts.LegendOpts(is_show=False)\n",
    "        )\n",
    "        .set_global_opts(\n",
    "            title_opts=opts.TitleOpts(title=f\"标签{i}类人群的平均购买情况：\"),\n",
    "            legend_opts=opts.LegendOpts(is_show = False),\n",
    "        )\n",
    "    )\n",
    "    # 添加时间轴\n",
    "    timeline.add(c,str(i))\n",
    "\n",
    "# 设置自动播放\n",
    "timeline.add_schema(\n",
    "    play_interval=5000,     # 自动播放的时间间隔(毫秒)\n",
    "    is_timeline_show=True,  # 是否在自动播放的时候显示时间线\n",
    "    is_auto_play=True,      # 是否自动播放\n",
    "    is_loop_play=False       # 是否循环播放\n",
    ")\n",
    "\n",
    "timeline.render(\"../tmp/9类人的平均购买情况(K-means聚类).html\")\n",
    "timeline.render_notebook()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.9.13 ('base')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "79c2bc36f36ebca92fe5f3c73355a3866f3a34a4fd0b1d43087d5313dd5fd5ff"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
